package com.example.llh.weather_llh_21;

import java.util.List;

/**
 * 天气API响应数据模型：封装接口返回的完整数据结构
 JSON示例：根据JSON写字段
 {
 "message": "success感谢又拍云(upyun.com)提供CDN赞助",
 "status": 200,
 "date": "20250511",
 "time": "2025-05-11 08:08:43",
 "temperature": 20,
 "cityInfo": {
 "city": "福州市",
 "citykey": "101230101",
 "parent": "福建",
 "updateTime": "08:07"
 },
 "data": {
 "shidu": "88%",
 "pm25": 12,
 "pm10": 24,
 "quality": "优",
 "wendu": "18.7",
 "ganmao": "各类人群可自由活动",
 "forecast": [
 {
 "date": "11",
 "high": "高温 24℃",
 "low": "低温 18℃",
 "ymd": "2025-05-11",
 "week": "星期日",
 "sunrise": "05:18",
 "sunset": "18:39",
 "aqi": 27,
 "fx": "西北风",
 "fl": "1级",
 "type": "小雨",
 "notice": "雨虽小，注意保暖别感冒"
 },
 {
 "date": "12",
 "high": "高温 30℃",
 "low": "低温 16℃",
 "ymd": "2025-05-12",
 "week": "星期一",
 "sunrise": "05:18",
 "sunset": "18:40",
 "aqi": 35,
 "fx": "东风",
 "fl": "1级",
 "type": "晴",
 "notice": "愿你拥有比阳光明媚的心情"
 }
 }
 */
public class WeatherResponse {

    public int status;// 接口响应状态码（200表示成功）
    public String message;// 接口返回的文本消息
    public CityInfo cityInfo;// 城市基础信息
    public WeatherData data;// 天气核心数据（含实时数据和预报）
    public String time;
    public int temperature;

    /* 以下为字段访问方法 */
    public String getMessage() { return message; }
    public int getStatus() { return status; }
    public CityInfo getCityInfo() { return cityInfo; }
    public WeatherData getData() { return data; }
    public String getTime(){ return time; }
    public int getTemperature() { return temperature;}

    /**
     * 城市信息数据结构：对应API中的cityInfo节点
     */
    public static class CityInfo {

        public String city;// 城市名称
        // 其他的字段如parent/citykey等可选择性添加
        public String getCity() { return city; }
    }

    /**
     * 天气核心数据：对应API中的data节点
     */
    public static class WeatherData {

        public String shidu;// 湿度值（示例：45%）
        public double pm25;// PM2.5浓度值（示例：35.5）
        public List<Forecast> forecast;// 天气预报列表（未来7-15天）
        //其他的字段可选择性添加

        public String getShidu() { return shidu; }
        public double getPm25() { return pm25; }
        public List<Forecast> getForecast() { return forecast; }
    }

    /**
     * 单日天气预报数据结构：对应forecast数组中的元素
     */
    public static class Forecast {

        public String ymd;// 预报日期（格式：YYYY-MM-DD）
        public String type;// 天气类型（示例：晴/多云/小雨）
        public String high;// 最高温度（示例：28℃）
        public String low;// 最低温度（示例：18℃）


        public String getYmd() { return ymd; }
        public String getType() { return type; }
        public String getHigh() { return high; }
        public String getLow() { return low; }
    }
}